{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Quick Start"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The `LANfactory` package is a light-weight convenience package for training `likelihood approximation networks` (LANs) in torch (or keras), \n",
    "starting from supplied training data.\n",
    "\n",
    "[LANs](https://elifesciences.org/articles/65074), although more general in potential scope of applications, were conceived in the context of sequential sampling modeling\n",
    "to account for cognitive processes giving rise to *choice* and *reaction time* data in *n-alternative forced choice experiments* commonly encountered in the cognitive sciences.\n",
    "\n",
    "In this quick tutorial we will use the [`ssms`](https://github.com/AlexanderFengler/ssm_simulators) package to generate our training data using such a sequential sampling model (SSM). The use of of the `LANfactory` package is in no way bound to utilize this `ssms` package."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Install\n",
    "\n",
    "To install the `ssms` package type,\n",
    "\n",
    "`pip install git+https://github.com/AlexanderFengler/ssm_simulators`\n",
    "\n",
    "To install the `LANfactory` package type,\n",
    "\n",
    "`pip install git+https://github.com/AlexanderFengler/LANfactory`\n",
    "\n",
    "Necessary dependency should be installed automatically in the process."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Basic Tutorial"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "passing 1\n",
      "wandb not available\n",
      "wandb not available\n"
     ]
    }
   ],
   "source": [
    "# Load necessary packages\n",
    "import ssms\n",
    "import lanfactory\n",
    "import os\n",
    "import numpy as np\n",
    "from copy import deepcopy\n",
    "import torch"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Generate Training Data\n",
    "First we need to generate some training data. As mentioned above we will do so using the `ssms` python package, however without delving into a detailed explanation\n",
    "of this package. Please refer to the [basic ssms tutorial] (https://github.com/AlexanderFengler/ssm_simulators) in case you want to learn more."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# MAKE CONFIGS\n",
    "model = \"ddm_deadline\"\n",
    "# Initialize the generator config (for MLP LANs)\n",
    "generator_config = deepcopy(ssms.config.data_generator_config[\"lan\"])\n",
    "# Specify generative model (one from the list of included models mentioned above)\n",
    "generator_config[\"model\"] = model\n",
    "# Specify number of parameter sets to simulate\n",
    "generator_config[\"n_parameter_sets\"] = 10000\n",
    "# Specify how many samples a simulation run should entail\n",
    "generator_config[\"n_samples\"] = 1000\n",
    "# Specify folder in which to save generated data\n",
    "generator_config[\"output_folder\"] = \"data/lan_mlp/\" + model + \"/\"\n",
    "\n",
    "# Make model config dict\n",
    "model_config = ssms.config.model_config[model.split(\"_deadline\")[0]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'name': 'ddm_deadline', 'params': ['v', 'a', 'z', 't', 'deadline'], 'param_bounds': [[-3.0, 0.3, 0.1, 0.0, 0.001], [3.0, 2.5, 0.9, 2.0, 10]], 'boundary_name': 'constant', 'boundary': <function constant at 0x111b4ec20>, 'boundary_params': [], 'n_params': 5, 'default_params': [0.0, 1.0, 0.5, 0.001, 10], 'nchoices': 2, 'simulator': <cyfunction ddm_flexbound at 0x177b3e4d0>}\n",
      "n_cpus used:  12\n",
      "checking:  data/lan_mlp/ddm_deadline/\n",
      "0\n",
      "simulation round: 1  of 10\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "simulation round: 2  of 10\n",
      "simulation round: 3  of 10\n",
      "simulation round: 4  of 10\n",
      "simulation round: 5  of 10\n",
      "simulation round: 6  of 10\n",
      "simulation round: 7  of 10\n",
      "simulation round: 8  of 10\n",
      "simulation round: 9  of 10\n",
      "simulation round: 10  of 10\n",
      "Writing to file:  data/lan_mlp/ddm_deadline//training_data_2740c416c0b711eeaa2f6ae25f443f62.pickle\n",
      "1\n",
      "simulation round: 1  of 10\n",
      "simulation round: 2  of 10\n",
      "simulation round: 3  of 10\n",
      "simulation round: 4  of 10\n",
      "simulation round: 5  of 10\n",
      "simulation round: 6  of 10\n",
      "simulation round: 7  of 10\n",
      "simulation round: 8  of 10\n",
      "simulation round: 9  of 10\n",
      "simulation round: 10  of 10\n",
      "Writing to file:  data/lan_mlp/ddm_deadline//training_data_4efa2682c0b711eeaa2f6ae25f443f62.pickle\n",
      "2\n",
      "simulation round: 1  of 10\n",
      "simulation round: 2  of 10\n",
      "simulation round: 3  of 10\n",
      "simulation round: 4  of 10\n",
      "simulation round: 5  of 10\n",
      "simulation round: 6  of 10\n",
      "simulation round: 7  of 10\n",
      "simulation round: 8  of 10\n",
      "simulation round: 9  of 10\n",
      "simulation round: 10  of 10\n",
      "Writing to file:  data/lan_mlp/ddm_deadline//training_data_765cd94ac0b711eeaa2f6ae25f443f62.pickle\n",
      "3\n",
      "simulation round: 1  of 10\n",
      "simulation round: 2  of 10\n",
      "simulation round: 3  of 10\n",
      "simulation round: 4  of 10\n",
      "simulation round: 5  of 10\n",
      "simulation round: 6  of 10\n",
      "simulation round: 7  of 10\n",
      "simulation round: 8  of 10\n",
      "simulation round: 9  of 10\n",
      "simulation round: 10  of 10\n",
      "Writing to file:  data/lan_mlp/ddm_deadline//training_data_9e5957a2c0b711eeaa2f6ae25f443f62.pickle\n",
      "4\n",
      "simulation round: 1  of 10\n",
      "simulation round: 2  of 10\n",
      "simulation round: 3  of 10\n",
      "simulation round: 4  of 10\n",
      "simulation round: 5  of 10\n",
      "simulation round: 6  of 10\n",
      "simulation round: 7  of 10\n",
      "simulation round: 8  of 10\n",
      "simulation round: 9  of 10\n",
      "simulation round: 10  of 10\n",
      "Writing to file:  data/lan_mlp/ddm_deadline//training_data_c5e80f98c0b711eeaa2f6ae25f443f62.pickle\n",
      "5\n",
      "simulation round: 1  of 10\n",
      "simulation round: 2  of 10\n",
      "simulation round: 3  of 10\n",
      "simulation round: 4  of 10\n",
      "simulation round: 5  of 10\n",
      "simulation round: 6  of 10\n",
      "simulation round: 7  of 10\n",
      "simulation round: 8  of 10\n",
      "simulation round: 9  of 10\n",
      "simulation round: 10  of 10\n",
      "Writing to file:  data/lan_mlp/ddm_deadline//training_data_ed450992c0b711eeaa2f6ae25f443f62.pickle\n",
      "6\n",
      "simulation round: 1  of 10\n",
      "simulation round: 2  of 10\n",
      "simulation round: 3  of 10\n",
      "simulation round: 4  of 10\n",
      "simulation round: 5  of 10\n",
      "simulation round: 6  of 10\n",
      "simulation round: 7  of 10\n",
      "simulation round: 8  of 10\n",
      "simulation round: 9  of 10\n",
      "simulation round: 10  of 10\n",
      "Writing to file:  data/lan_mlp/ddm_deadline//training_data_15363534c0b811eeaa2f6ae25f443f62.pickle\n",
      "7\n",
      "simulation round: 1  of 10\n",
      "simulation round: 2  of 10\n",
      "simulation round: 3  of 10\n",
      "simulation round: 4  of 10\n",
      "simulation round: 5  of 10\n",
      "simulation round: 6  of 10\n",
      "simulation round: 7  of 10\n",
      "simulation round: 8  of 10\n",
      "simulation round: 9  of 10\n",
      "simulation round: 10  of 10\n",
      "Writing to file:  data/lan_mlp/ddm_deadline//training_data_3cc66290c0b811eeaa2f6ae25f443f62.pickle\n",
      "8\n",
      "simulation round: 1  of 10\n",
      "simulation round: 2  of 10\n",
      "simulation round: 3  of 10\n",
      "simulation round: 4  of 10\n",
      "simulation round: 5  of 10\n",
      "simulation round: 6  of 10\n",
      "simulation round: 7  of 10\n",
      "simulation round: 8  of 10\n",
      "simulation round: 9  of 10\n",
      "simulation round: 10  of 10\n",
      "Writing to file:  data/lan_mlp/ddm_deadline//training_data_64028fb4c0b811eeaa2f6ae25f443f62.pickle\n",
      "9\n",
      "simulation round: 1  of 10\n",
      "simulation round: 2  of 10\n",
      "simulation round: 3  of 10\n",
      "simulation round: 4  of 10\n",
      "simulation round: 5  of 10\n",
      "simulation round: 6  of 10\n",
      "simulation round: 7  of 10\n",
      "simulation round: 8  of 10\n",
      "simulation round: 9  of 10\n",
      "simulation round: 10  of 10\n",
      "Writing to file:  data/lan_mlp/ddm_deadline//training_data_a9959346c0b811eeaa2f6ae25f443f62.pickle\n",
      "10\n",
      "simulation round: 1  of 10\n",
      "simulation round: 2  of 10\n",
      "simulation round: 3  of 10\n",
      "simulation round: 4  of 10\n",
      "simulation round: 5  of 10\n",
      "simulation round: 6  of 10\n",
      "simulation round: 7  of 10\n",
      "simulation round: 8  of 10\n",
      "simulation round: 9  of 10\n",
      "simulation round: 10  of 10\n",
      "Writing to file:  data/lan_mlp/ddm_deadline//training_data_d7c1eda0c0b811eeaa2f6ae25f443f62.pickle\n",
      "11\n",
      "simulation round: 1  of 10\n",
      "simulation round: 2  of 10\n",
      "simulation round: 3  of 10\n",
      "simulation round: 4  of 10\n",
      "simulation round: 5  of 10\n",
      "simulation round: 6  of 10\n",
      "simulation round: 7  of 10\n",
      "simulation round: 8  of 10\n",
      "simulation round: 9  of 10\n",
      "simulation round: 10  of 10\n",
      "Writing to file:  data/lan_mlp/ddm_deadline//training_data_080a1802c0b911eeaa2f6ae25f443f62.pickle\n",
      "12\n",
      "simulation round: 1  of 10\n",
      "simulation round: 2  of 10\n",
      "simulation round: 3  of 10\n",
      "simulation round: 4  of 10\n",
      "simulation round: 5  of 10\n",
      "simulation round: 6  of 10\n",
      "simulation round: 7  of 10\n",
      "simulation round: 8  of 10\n",
      "simulation round: 9  of 10\n",
      "simulation round: 10  of 10\n",
      "Writing to file:  data/lan_mlp/ddm_deadline//training_data_37b590ccc0b911eeaa2f6ae25f443f62.pickle\n",
      "13\n",
      "simulation round: 1  of 10\n",
      "simulation round: 2  of 10\n",
      "simulation round: 3  of 10\n",
      "simulation round: 4  of 10\n",
      "simulation round: 5  of 10\n",
      "simulation round: 6  of 10\n",
      "simulation round: 7  of 10\n",
      "simulation round: 8  of 10\n",
      "simulation round: 9  of 10\n",
      "simulation round: 10  of 10\n",
      "Writing to file:  data/lan_mlp/ddm_deadline//training_data_653f8b42c0b911eeaa2f6ae25f443f62.pickle\n",
      "14\n",
      "simulation round: 1  of 10\n",
      "simulation round: 2  of 10\n",
      "simulation round: 3  of 10\n",
      "simulation round: 4  of 10\n",
      "simulation round: 5  of 10\n",
      "simulation round: 6  of 10\n",
      "simulation round: 7  of 10\n",
      "simulation round: 8  of 10\n",
      "simulation round: 9  of 10\n",
      "simulation round: 10  of 10\n",
      "Writing to file:  data/lan_mlp/ddm_deadline//training_data_94e2e98ec0b911eeaa2f6ae25f443f62.pickle\n",
      "15\n",
      "simulation round: 1  of 10\n",
      "simulation round: 2  of 10\n",
      "simulation round: 3  of 10\n",
      "simulation round: 4  of 10\n",
      "simulation round: 5  of 10\n",
      "simulation round: 6  of 10\n",
      "simulation round: 7  of 10\n",
      "simulation round: 8  of 10\n",
      "simulation round: 9  of 10\n",
      "simulation round: 10  of 10\n",
      "Writing to file:  data/lan_mlp/ddm_deadline//training_data_c08d4ea8c0b911eeaa2f6ae25f443f62.pickle\n",
      "16\n",
      "simulation round: 1  of 10\n",
      "simulation round: 2  of 10\n",
      "simulation round: 3  of 10\n",
      "simulation round: 4  of 10\n",
      "simulation round: 5  of 10\n",
      "simulation round: 6  of 10\n",
      "simulation round: 7  of 10\n",
      "simulation round: 8  of 10\n",
      "simulation round: 9  of 10\n",
      "simulation round: 10  of 10\n",
      "Writing to file:  data/lan_mlp/ddm_deadline//training_data_eda3be22c0b911eeaa2f6ae25f443f62.pickle\n",
      "17\n",
      "simulation round: 1  of 10\n",
      "simulation round: 2  of 10\n",
      "simulation round: 3  of 10\n",
      "simulation round: 4  of 10\n",
      "simulation round: 5  of 10\n",
      "simulation round: 6  of 10\n",
      "simulation round: 7  of 10\n",
      "simulation round: 8  of 10\n",
      "simulation round: 9  of 10\n",
      "simulation round: 10  of 10\n",
      "Writing to file:  data/lan_mlp/ddm_deadline//training_data_1b205374c0ba11eeaa2f6ae25f443f62.pickle\n",
      "18\n",
      "simulation round: 1  of 10\n",
      "simulation round: 2  of 10\n",
      "simulation round: 3  of 10\n",
      "simulation round: 4  of 10\n",
      "simulation round: 5  of 10\n",
      "simulation round: 6  of 10\n",
      "simulation round: 7  of 10\n",
      "simulation round: 8  of 10\n",
      "simulation round: 9  of 10\n",
      "simulation round: 10  of 10\n",
      "Writing to file:  data/lan_mlp/ddm_deadline//training_data_489a54f8c0ba11eeaa2f6ae25f443f62.pickle\n",
      "19\n",
      "simulation round: 1  of 10\n",
      "simulation round: 2  of 10\n",
      "simulation round: 3  of 10\n",
      "simulation round: 4  of 10\n",
      "simulation round: 5  of 10\n",
      "simulation round: 6  of 10\n",
      "simulation round: 7  of 10\n",
      "simulation round: 8  of 10\n",
      "simulation round: 9  of 10\n",
      "simulation round: 10  of 10\n",
      "Writing to file:  data/lan_mlp/ddm_deadline//training_data_739175cec0ba11eeaa2f6ae25f443f62.pickle\n",
      "20\n",
      "simulation round: 1  of 10\n",
      "simulation round: 2  of 10\n",
      "simulation round: 3  of 10\n",
      "simulation round: 4  of 10\n",
      "simulation round: 5  of 10\n",
      "simulation round: 6  of 10\n",
      "simulation round: 7  of 10\n",
      "simulation round: 8  of 10\n",
      "simulation round: 9  of 10\n",
      "simulation round: 10  of 10\n",
      "Writing to file:  data/lan_mlp/ddm_deadline//training_data_9e009dd0c0ba11eeaa2f6ae25f443f62.pickle\n",
      "21\n",
      "simulation round: 1  of 10\n",
      "simulation round: 2  of 10\n",
      "simulation round: 3  of 10\n",
      "simulation round: 4  of 10\n",
      "simulation round: 5  of 10\n",
      "simulation round: 6  of 10\n",
      "simulation round: 7  of 10\n",
      "simulation round: 8  of 10\n",
      "simulation round: 9  of 10\n",
      "simulation round: 10  of 10\n",
      "Writing to file:  data/lan_mlp/ddm_deadline//training_data_c808bf4ac0ba11eeaa2f6ae25f443f62.pickle\n",
      "22\n",
      "simulation round: 1  of 10\n",
      "simulation round: 2  of 10\n",
      "simulation round: 3  of 10\n",
      "simulation round: 4  of 10\n",
      "simulation round: 5  of 10\n",
      "simulation round: 6  of 10\n",
      "simulation round: 7  of 10\n",
      "simulation round: 8  of 10\n",
      "simulation round: 9  of 10\n",
      "simulation round: 10  of 10\n",
      "Writing to file:  data/lan_mlp/ddm_deadline//training_data_f1eda992c0ba11eeaa2f6ae25f443f62.pickle\n",
      "23\n",
      "simulation round: 1  of 10\n",
      "simulation round: 2  of 10\n",
      "simulation round: 3  of 10\n",
      "simulation round: 4  of 10\n",
      "simulation round: 5  of 10\n",
      "simulation round: 6  of 10\n",
      "simulation round: 7  of 10\n",
      "simulation round: 8  of 10\n",
      "simulation round: 9  of 10\n",
      "simulation round: 10  of 10\n",
      "Writing to file:  data/lan_mlp/ddm_deadline//training_data_1a5fbe88c0bb11eeaa2f6ae25f443f62.pickle\n",
      "24\n",
      "simulation round: 1  of 10\n",
      "simulation round: 2  of 10\n",
      "simulation round: 3  of 10\n",
      "simulation round: 4  of 10\n",
      "simulation round: 5  of 10\n",
      "simulation round: 6  of 10\n",
      "simulation round: 7  of 10\n",
      "simulation round: 8  of 10\n",
      "simulation round: 9  of 10\n",
      "simulation round: 10  of 10\n",
      "Writing to file:  data/lan_mlp/ddm_deadline//training_data_4372f2ccc0bb11eeaa2f6ae25f443f62.pickle\n"
     ]
    }
   ],
   "source": [
    "# MAKE DATA\n",
    "\n",
    "my_dataset_generator = ssms.dataset_generators.lan_mlp.data_generator(\n",
    "    generator_config=generator_config, model_config=model_config\n",
    ")\n",
    "\n",
    "for i in range(25):\n",
    "    print(i)\n",
    "    training_data = my_dataset_generator.generate_data_training_uniform(save=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'Dataset completed'"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# training_data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Prepare for Training\n",
    "\n",
    "Next we set up dataloaders for training with pytorch. The `LANfactory` uses custom dataloaders, taking into account particularities of the expected training data.\n",
    "Specifically, we expect to receive a bunch of training data files (the present example generates only one), where each file hosts a large number of training examples. \n",
    "So we want to define a dataloader which spits out batches from data with a specific training data file, and keeps checking when to load in a new file. \n",
    "The way this is implemented here, is via the `DatasetTorch` class in `lanfactory.trainers`, which inherits from `torch.utils.data.Dataset` and prespecifies a `batch_size`. Finally this is supplied to a [`DataLoader`](https://pytorch.org/docs/stable/data.html), for which we keep the `batch_size` argument at 0.\n",
    "\n",
    "The `DatasetTorch` class is then called as an iterator via the DataLoader and takes care of batching as well as file loading internally. \n",
    "\n",
    "You may choose your own way of defining the `DataLoader` classes, downstream you are simply expected to supply one."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "# MAKE DATALOADERS\n",
    "\n",
    "# List of datafiles (here only one)\n",
    "folder_ = \"data/lan_mlp/\" + model + \"/\"  # + \"/training_data_0_nbins_0_n_1000/\"\n",
    "file_list_ = [folder_ + file_ for file_ in os.listdir(folder_)]\n",
    "feature_key = \"cpn_data\"\n",
    "label_key = \"cpn_labels\"\n",
    "\n",
    "# Training dataset\n",
    "torch_training_dataset = lanfactory.trainers.DatasetTorch(\n",
    "    file_ids=file_list_,\n",
    "    batch_size=1024,\n",
    "    features_key=feature_key,\n",
    "    label_key=label_key,\n",
    ")\n",
    "\n",
    "torch_training_dataloader = torch.utils.data.DataLoader(\n",
    "    torch_training_dataset,\n",
    "    shuffle=True,\n",
    "    batch_size=None,\n",
    "    num_workers=1,\n",
    "    pin_memory=True,\n",
    ")\n",
    "\n",
    "# Validation dataset\n",
    "torch_validation_dataset = lanfactory.trainers.DatasetTorch(\n",
    "    file_ids=file_list_,\n",
    "    batch_size=1024,\n",
    "    features_key=feature_key,\n",
    "    label_key=label_key,\n",
    ")\n",
    "\n",
    "torch_validation_dataloader = torch.utils.data.DataLoader(\n",
    "    torch_validation_dataset,\n",
    "    shuffle=True,\n",
    "    batch_size=None,\n",
    "    num_workers=1,\n",
    "    pin_memory=True,\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we define two configuration dictionariers,\n",
    "\n",
    "1. The `network_config` dictionary defines the architecture and properties of the network\n",
    "2. The `train_config` dictionary defines properties concerning training hyperparameters\n",
    "\n",
    "Two examples (which we take as provided by the package, but which you can adjust according to your needs) are provided below."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Network config: \n",
      "{'layer_sizes': [100, 100, 1], 'activations': ['tanh', 'tanh', 'linear'], 'train_output_type': 'logits'}\n",
      "Train config: \n",
      "{'cpu_batch_size': 128, 'gpu_batch_size': 256, 'n_epochs': 5, 'optimizer': 'adam', 'learning_rate': 0.002, 'lr_scheduler': 'reduce_on_plateau', 'lr_scheduler_params': {}, 'weight_decay': 0.0, 'loss': 'bcelogit', 'save_history': True}\n"
     ]
    }
   ],
   "source": [
    "# SPECIFY NETWORK CONFIGS AND TRAINING CONFIGS\n",
    "network_type = \"cpn\"\n",
    "if network_type == \"cpn\":\n",
    "    network_config = lanfactory.config.network_configs.network_config_cpn\n",
    "    train_config = lanfactory.config.network_configs.train_config_cpn\n",
    "elif network_type == \"lan\":\n",
    "    network_config = lanfactory.config.network_configs.network_config_mlp\n",
    "    train_config = lanfactory.config.network_configs.train_config_mlp\n",
    "elif network_type == \"opn\":\n",
    "    network_config = lanfactory.config.network_configs.network_config_cpn\n",
    "    train_config = lanfactory.config.network_configs.train_config_cpn\n",
    "\n",
    "print(\"Network config: \")\n",
    "print(network_config)\n",
    "\n",
    "print(\"Train config: \")\n",
    "print(train_config)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can now load a network, and save the configuration files for convenience."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tanh\n",
      "tanh\n",
      "linear\n",
      "Found folder:  data\n",
      "Moving on...\n",
      "Found folder:  data/torch_models\n",
      "Moving on...\n",
      "Found folder:  data/torch_models/ddm_deadline\n",
      "Moving on...\n",
      "Saved network config\n",
      "Saved train config\n"
     ]
    }
   ],
   "source": [
    "# LOAD NETWORK\n",
    "net = lanfactory.trainers.TorchMLP(\n",
    "    network_config=deepcopy(network_config),\n",
    "    input_shape=torch_training_dataset.input_dim,\n",
    "    save_folder=\"data/torch_models/\" + model + \"/\",\n",
    "    generative_model_id=\"angle\",\n",
    ")\n",
    "\n",
    "# SAVE CONFIGS\n",
    "lanfactory.utils.save_configs(\n",
    "    model_id=\"angle\" + \"_torch_\",\n",
    "    save_folder=\"data/torch_models/\" + model + \"/\",\n",
    "    network_config=network_config,\n",
    "    train_config=train_config,\n",
    "    allow_abs_path_folder_generation=True,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on function train_and_evaluate in module lanfactory.trainers.torch_mlp:\n",
      "\n",
      "train_and_evaluate(self, output_folder='data/', output_file_id='fileid', run_id='runid', wandb_on=True, wandb_project_id='projectid', save_history=True, save_model=True, save_config=True, save_all=True, save_data_details=True, verbose=1)\n",
      "    Train and evaluate the model.\n",
      "    \n",
      "    Arguments\n",
      "    ---------\n",
      "        output_folder (str):\n",
      "            Output folder.\n",
      "        output_file_id (str):\n",
      "            Output file ID.\n",
      "        run_id (str):\n",
      "            Run ID.\n",
      "        wandb_on (bool):\n",
      "            Whether to use wandb.\n",
      "        wandb_project_id (str):\n",
      "            Wandb project ID.\n",
      "        save_history (bool):\n",
      "            Whether to save the training history.\n",
      "        save_model (bool):\n",
      "            Whether to save the model.\n",
      "        save_config (bool):\n",
      "            Whether to save the training configuration.\n",
      "        save_all (bool):\n",
      "            Whether to save all.\n",
      "        save_data_details (bool):\n",
      "            Whether to save the data details.\n",
      "        verbose (int):\n",
      "            Verbosity level.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(lanfactory.trainers.ModelTrainerTorchMLP.train_and_evaluate)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [],
   "source": [
    "# train_config\n",
    "\n",
    "# train_config[\"n_epochs\"] = 25"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To finally train the network we supply our network, the dataloaders and training config to the `ModelTrainerTorchMLP` class, from `lanfactory.trainers`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'net' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m/Users/afengler/Library/CloudStorage/OneDrive-Personal/project_lanfactory/LANfactory/notebooks/basic_tutorial_cpn.ipynb Cell 19\u001b[0m line \u001b[0;36m6\n\u001b[1;32m      <a href='vscode-notebook-cell:/Users/afengler/Library/CloudStorage/OneDrive-Personal/project_lanfactory/LANfactory/notebooks/basic_tutorial_cpn.ipynb#Y206sZmlsZQ%3D%3D?line=1'>2</a>\u001b[0m n_epochs \u001b[39m=\u001b[39m \u001b[39m20\u001b[39m\n\u001b[1;32m      <a href='vscode-notebook-cell:/Users/afengler/Library/CloudStorage/OneDrive-Personal/project_lanfactory/LANfactory/notebooks/basic_tutorial_cpn.ipynb#Y206sZmlsZQ%3D%3D?line=2'>3</a>\u001b[0m train_config[\u001b[39m\"\u001b[39m\u001b[39mn_epochs\u001b[39m\u001b[39m\"\u001b[39m] \u001b[39m=\u001b[39m n_epochs\n\u001b[1;32m      <a href='vscode-notebook-cell:/Users/afengler/Library/CloudStorage/OneDrive-Personal/project_lanfactory/LANfactory/notebooks/basic_tutorial_cpn.ipynb#Y206sZmlsZQ%3D%3D?line=4'>5</a>\u001b[0m model_trainer \u001b[39m=\u001b[39m lanfactory\u001b[39m.\u001b[39mtrainers\u001b[39m.\u001b[39mModelTrainerTorchMLP(\n\u001b[0;32m----> <a href='vscode-notebook-cell:/Users/afengler/Library/CloudStorage/OneDrive-Personal/project_lanfactory/LANfactory/notebooks/basic_tutorial_cpn.ipynb#Y206sZmlsZQ%3D%3D?line=5'>6</a>\u001b[0m     model\u001b[39m=\u001b[39mnet,\n\u001b[1;32m      <a href='vscode-notebook-cell:/Users/afengler/Library/CloudStorage/OneDrive-Personal/project_lanfactory/LANfactory/notebooks/basic_tutorial_cpn.ipynb#Y206sZmlsZQ%3D%3D?line=6'>7</a>\u001b[0m     train_config\u001b[39m=\u001b[39mtrain_config,\n\u001b[1;32m      <a href='vscode-notebook-cell:/Users/afengler/Library/CloudStorage/OneDrive-Personal/project_lanfactory/LANfactory/notebooks/basic_tutorial_cpn.ipynb#Y206sZmlsZQ%3D%3D?line=7'>8</a>\u001b[0m     train_dl\u001b[39m=\u001b[39mtorch_training_dataloader,\n\u001b[1;32m      <a href='vscode-notebook-cell:/Users/afengler/Library/CloudStorage/OneDrive-Personal/project_lanfactory/LANfactory/notebooks/basic_tutorial_cpn.ipynb#Y206sZmlsZQ%3D%3D?line=8'>9</a>\u001b[0m     valid_dl\u001b[39m=\u001b[39mtorch_validation_dataloader,\n\u001b[1;32m     <a href='vscode-notebook-cell:/Users/afengler/Library/CloudStorage/OneDrive-Personal/project_lanfactory/LANfactory/notebooks/basic_tutorial_cpn.ipynb#Y206sZmlsZQ%3D%3D?line=9'>10</a>\u001b[0m     allow_abs_path_folder_generation\u001b[39m=\u001b[39m\u001b[39mFalse\u001b[39;00m,\n\u001b[1;32m     <a href='vscode-notebook-cell:/Users/afengler/Library/CloudStorage/OneDrive-Personal/project_lanfactory/LANfactory/notebooks/basic_tutorial_cpn.ipynb#Y206sZmlsZQ%3D%3D?line=10'>11</a>\u001b[0m     pin_memory\u001b[39m=\u001b[39m\u001b[39mTrue\u001b[39;00m,\n\u001b[1;32m     <a href='vscode-notebook-cell:/Users/afengler/Library/CloudStorage/OneDrive-Personal/project_lanfactory/LANfactory/notebooks/basic_tutorial_cpn.ipynb#Y206sZmlsZQ%3D%3D?line=11'>12</a>\u001b[0m     seed\u001b[39m=\u001b[39m\u001b[39mNone\u001b[39;00m,\n\u001b[1;32m     <a href='vscode-notebook-cell:/Users/afengler/Library/CloudStorage/OneDrive-Personal/project_lanfactory/LANfactory/notebooks/basic_tutorial_cpn.ipynb#Y206sZmlsZQ%3D%3D?line=12'>13</a>\u001b[0m )\n\u001b[1;32m     <a href='vscode-notebook-cell:/Users/afengler/Library/CloudStorage/OneDrive-Personal/project_lanfactory/LANfactory/notebooks/basic_tutorial_cpn.ipynb#Y206sZmlsZQ%3D%3D?line=14'>15</a>\u001b[0m \u001b[39m# model_trainer.train_model(save_history=True, save_model=True, verbose=0)\u001b[39;00m\n\u001b[1;32m     <a href='vscode-notebook-cell:/Users/afengler/Library/CloudStorage/OneDrive-Personal/project_lanfactory/LANfactory/notebooks/basic_tutorial_cpn.ipynb#Y206sZmlsZQ%3D%3D?line=15'>16</a>\u001b[0m model_trainer\u001b[39m.\u001b[39mtrain_and_evaluate(\n\u001b[1;32m     <a href='vscode-notebook-cell:/Users/afengler/Library/CloudStorage/OneDrive-Personal/project_lanfactory/LANfactory/notebooks/basic_tutorial_cpn.ipynb#Y206sZmlsZQ%3D%3D?line=16'>17</a>\u001b[0m     wandb_on\u001b[39m=\u001b[39m\u001b[39mFalse\u001b[39;00m,\n\u001b[1;32m     <a href='vscode-notebook-cell:/Users/afengler/Library/CloudStorage/OneDrive-Personal/project_lanfactory/LANfactory/notebooks/basic_tutorial_cpn.ipynb#Y206sZmlsZQ%3D%3D?line=17'>18</a>\u001b[0m     output_folder\u001b[39m=\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mdata/torch_models/\u001b[39m\u001b[39m\"\u001b[39m \u001b[39m+\u001b[39m model \u001b[39m+\u001b[39m \u001b[39m\"\u001b[39m\u001b[39m_cpn\u001b[39m\u001b[39m\"\u001b[39m \u001b[39m+\u001b[39m \u001b[39m\"\u001b[39m\u001b[39m/\u001b[39m\u001b[39m\"\u001b[39m,\n\u001b[1;32m     <a href='vscode-notebook-cell:/Users/afengler/Library/CloudStorage/OneDrive-Personal/project_lanfactory/LANfactory/notebooks/basic_tutorial_cpn.ipynb#Y206sZmlsZQ%3D%3D?line=18'>19</a>\u001b[0m     output_file_id\u001b[39m=\u001b[39mmodel,\n\u001b[1;32m     <a href='vscode-notebook-cell:/Users/afengler/Library/CloudStorage/OneDrive-Personal/project_lanfactory/LANfactory/notebooks/basic_tutorial_cpn.ipynb#Y206sZmlsZQ%3D%3D?line=19'>20</a>\u001b[0m )\n",
      "\u001b[0;31mNameError\u001b[0m: name 'net' is not defined"
     ]
    }
   ],
   "source": [
    "# TRAIN MODEL\n",
    "n_epochs = 20\n",
    "train_config[\"n_epochs\"] = n_epochs\n",
    "\n",
    "model_trainer = lanfactory.trainers.ModelTrainerTorchMLP(\n",
    "    model=net,\n",
    "    train_config=train_config,\n",
    "    train_dl=torch_training_dataloader,\n",
    "    valid_dl=torch_validation_dataloader,\n",
    "    allow_abs_path_folder_generation=False,\n",
    "    pin_memory=True,\n",
    "    seed=None,\n",
    ")\n",
    "\n",
    "# model_trainer.train_model(save_history=True, save_model=True, verbose=0)\n",
    "model_trainer.train_and_evaluate(\n",
    "    wandb_on=False,\n",
    "    output_folder=\"data/torch_models/\" + model + \"_cpn\" + \"/\",\n",
    "    output_file_id=model,\n",
    ")\n",
    "# LOAD MODEL"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Load Model for Inference and Call"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The `LANfactory` provides some convenience functions to use networks for inference after training. \n",
    "We can load a model using the `LoadTorchMLPInfer` class, which then allows us to run fast inference via either\n",
    "a direct call, which expects a `torch.tensor` as input, or the `predict_on_batch` method, which expects a `numpy.array` \n",
    "of `dtype`, `np.float32`. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tanh\n",
      "tanh\n",
      "linear\n"
     ]
    }
   ],
   "source": [
    "network_path_list = os.listdir(\"data/torch_models/\" + model + \"_cpn\")\n",
    "network_file_path = [\n",
    "    \"data/torch_models/\" + model + \"_cpn\" + \"/\" + file_\n",
    "    for file_ in network_path_list\n",
    "    if \"state_dict\" in file_\n",
    "][0]\n",
    "\n",
    "network = lanfactory.trainers.LoadTorchMLPInfer(\n",
    "    model_file_path=network_file_path,\n",
    "    network_config=network_config,\n",
    "    input_dim=torch_training_dataset.input_dim,\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'data/torch_models/ddm_deadline_cpn/ddm_deadline_cpn_runid_train_state_dict_torch.pt'"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "network_file_path"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "direct call out:  tensor([-0.8193])\n",
      "predict_on_batch out:  [-0.8192596]\n"
     ]
    }
   ],
   "source": [
    "# Two ways to call the network\n",
    "\n",
    "# Direct call --> need tensor input\n",
    "direct_out = network(\n",
    "    torch.from_numpy(np.array([1, 1.5, 0.5, 1.0, 1], dtype=np.float32))\n",
    ")\n",
    "print(\"direct call out: \", direct_out)\n",
    "\n",
    "# predict_on_batch method\n",
    "predict_on_batch_out = network.predict_on_batch(\n",
    "    np.array([1, 1.5, 0.5, 1.0, 1], dtype=np.float32)\n",
    ")\n",
    "print(\"predict_on_batch out: \", predict_on_batch_out)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### A peek into the first passage distribution computed by the network\n",
    "\n",
    "We can compare the learned likelihood function in our `network` with simulation data from the underlying generative model.\n",
    "For this purpose we recruit the [`ssms`](https://github.com/AlexanderFengler/ssm_simulators) package again."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/afengler/Library/CloudStorage/OneDrive-Personal/proj_ssm_simulators/ssm-simulators/ssms/basic_simulators/simulator.py:399: UserWarning: Deadline model request, and theta not supplied as dict.Make sure to supply the deadline parameters in last position!\n",
      "  warnings.warn(\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "from ssms.basic_simulators.simulator import simulator\n",
    "\n",
    "data = pd.DataFrame(\n",
    "    np.zeros((2000, 5), dtype=np.float32),\n",
    "    columns=[\"v\", \"a\", \"z\", \"t\", \"deadline\"],\n",
    ")\n",
    "data[\"v\"] = np.linspace(-2.0, 2.0, 2000)\n",
    "data[\"a\"] = 1.5\n",
    "data[\"z\"] = 0.5\n",
    "data[\"t\"] = 0.2\n",
    "# data[\"theta\"] = 0.1\n",
    "data[\"deadline\"] = 2.0\n",
    "\n",
    "# Network predictions\n",
    "network_predictions = []\n",
    "\n",
    "# Simulations\n",
    "choice_p_vec = np.zeros((10, 20))  # np.zeros(20, 20)\n",
    "for i, deadline in enumerate(np.linspace(0.5, 2.5, 10)):\n",
    "    data[\"v\"] = np.linspace(-2.0, 2.0, 2000)\n",
    "    data[\"deadline\"] = deadline\n",
    "    network_predictions.append(network.predict_on_batch(data.values.astype(np.float32)))\n",
    "    for j, v in enumerate(np.linspace(-2.0, 2.0, 20)):\n",
    "        data[\"v\"] = v\n",
    "        sim_out = simulator(model=model, theta=data.values[0, :], n_samples=10000)\n",
    "        choice_p_vec[i, j] = sim_out[\"choice_p\"][0, 0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'likelihod')"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAADyLUlEQVR4nOzdeZydZX3//9d93+e+z77NmTmzL8lk3xN2IhBkEyhWRKvw/bVKq9alWrVuVC22dX9IxaJWRQVq3S2iRRAsJQqyGkggELLNTGZfz77d+++PM3OSyUYSspDkej4e5xHmzH3uc5978si8ua7P57ok13VdBEEQBEEQThHyib4AQRAEQRCEo0mEG0EQBEEQTiki3AiCIAiCcEoR4UYQBEEQhFOKCDeCIAiCIJxSRLgRBEEQBOGUIsKNIAiCIAinFBFuBEEQBEE4pYhwIwiCIAjCKUWEG0EQXhXWrVvHunXral/39fUhSRJ33nln7bm3v/3thEKho/J++zv/Zz7zGSRJmnWcJEn83d/93VF5z6Nh/fr1SJLE+vXrT/SlCMKrlgg3gnCaeP7553nTm95EZ2cnPp+P1tZWLrvsMm677bZZxxmGwde+9jVWr15NJBIhFouxdOlS3vWud/HSSy/VjrvzzjuRJAlJknj00Uf3eT/XdWlvb0eSJP7sz/7smH8+QRCEGZ4TfQGCIBx7jz32GBdffDEdHR28853vpKmpiYGBAZ544gm+9rWv8f73v7927HXXXcf999/P9ddfzzvf+U5M0+Sll17i3nvv5fzzz2fRokWzzu3z+fjRj37Ea17zmlnP//73v2dwcBCv13tE19zZ2Um5XEZV1SN6/ZH41Kc+xSc+8Ynj9n6CIBwbItwIwmngc5/7HNFolKeffppYLDbre+Pj47X/fvrpp7n33nv53Oc+xz/+4z/OOu7rX/86mUxmn3NfddVV/PznP+ff//3f8Xh2/5Pyox/9iDPOOIPJyckjumZJkvD5fEf02iPl8XhmfQZBEE5OYlpKEE4DO3fuZOnSpfsEG4BkMjnrOIC1a9fuc5yiKCQSiX2ev/7665mamuJ3v/td7TnDMPjFL37BDTfccMTXvL+amP3ZuHEjDQ0NrFu3jkKhAMDQ0BB//dd/TWNjI16vl6VLl/L973//Zd9zfzU3M+655x6WLVtWO99vf/vbfY559tlnufLKK4lEIoRCIS655BKeeOKJfY7r6enhzW9+M3V1dQQCAc4991x+85vf7HPc4OAgb3jDGwgGgySTST70oQ+h6/rLfg5BON2JcCMIp4HOzk42bNjA5s2bX/Y4gB/+8IdYlnVI5+7q6uK8887jxz/+ce25+++/n2w2y1vf+tYjv+hD8PTTT/Pa176W1atXc//99xMKhRgbG+Pcc8/lf//3f/m7v/s7vva1rzFv3jz+5m/+hltvvfWI3ufRRx/lve99L29961v58pe/TKVS4brrrmNqaqp2zAsvvMAFF1zApk2b+NjHPsanP/1pent7WbduHU8++WTtuLGxMc4//3weeOAB3vve9/K5z32OSqXC61//en75y1/WjiuXy1xyySU88MAD/N3f/R2f/OQneeSRR/jYxz52xPdLEE4briAIp7wHH3zQVRTFVRTFPe+889yPfexj7gMPPOAahjHrOMdx3IsuusgF3MbGRvf66693v/GNb7i7du3a55x33HGHC7hPP/20+/Wvf90Nh8NuqVRyXdd13/zmN7sXX3yx67qu29nZ6V599dUve40XXXSRe9FFF9W+7u3tdQH3jjvuqD33tre9zQ0Gg67ruu6jjz7qRiIR9+qrr3YrlUrtmL/5m79xm5ub3cnJyVnnf+tb3+pGo9HaNe7v/DfffLO79z+LgKtpmrtjx47ac5s2bXIB97bbbqs994Y3vMHVNM3duXNn7bnh4WE3HA67F154Ye25D37wgy7gPvLII7Xn8vm8O2fOHLerq8u1bdt1Xde99dZbXcD92c9+VjuuWCy68+bNcwH34YcfPuC9FITTnRi5EYTTwGWXXcbjjz/O61//ejZt2sSXv/xlrrjiClpbW/n1r39dO06SJB544AE++9nPEo/H+fGPf8z73vc+Ojs7ectb3rLfmhuAv/iLv6BcLnPvvfeSz+e59957X9GU1Mt5+OGHueKKK7jkkku4++67a0XLruvy3//931xzzTW4rsvk5GTtccUVV5DNZnnmmWcO+/0uvfRSuru7a1+vWLGCSCRCT08PALZt8+CDD/KGN7yBuXPn1o5rbm7mhhtu4NFHHyWXywFw3333cfbZZ88qwA6FQrzrXe+ir6+PF198sXZcc3Mzb3rTm2rHBQIB3vWudx329QvC6UaEG0E4TZx11lncfffdpNNpnnrqKW666Sby+TxvetObar9QAbxeL5/85CfZsmULw8PD/PjHP+bcc8/lZz/72QHXe2loaODSSy/lRz/6EXfffTe2bc/6pXw0VSoVrr76alavXs3PfvYzNE2rfW9iYoJMJsN3vvMdGhoaZj1uvPFGYHYB9aHq6OjY57l4PE46na69b6lUYuHChfsct3jxYhzHYWBgAIBdu3Yd8LiZ78/8OW/evH1qgPb3WkEQZhNtAYJwmtE0jbPOOouzzjqLBQsWcOONN/Lzn/+cm2++eZ9jm5ubeetb38p1113H0qVL+dnPfsadd965346iG264gXe+852Mjo5y5ZVX7rd4+Wjwer1cddVV/OpXv+K3v/3trDV0HMcB4P/7//4/3va2t+339StWrDjs91QUZb/Pu6572OcSBOHYE+FGEE5jZ555JgAjIyMHPU5VVVasWMH27duZnJykqalpn2OuvfZa/vZv/5YnnniCn/70p8fkeqE6dfbDH/6QP//zP+fNb34z999/f21l44aGBsLhMLZtc+mllx6za9hbQ0MDgUCArVu37vO9l156CVmWaW9vB6pF2wc6bub7M39u3rwZ13Vnjd7s77WCIMwmpqUE4TTw8MMP73eU4b777gN2T3Vs376d/v7+fY7LZDI8/vjjxONxGhoa9vseoVCI//iP/+Azn/kM11xzzVG8+n1pmsbdd9/NWWedxTXXXMNTTz0FVEdYrrvuOv77v/97v51hExMTx+R6FEXh8ssv51e/+hV9fX2158fGxmoLHEYiEaC6LtBTTz3F448/XjuuWCzyne98h66uLpYsWVI7bnh4mF/84he140qlEt/5zneOyWcQhFOJGLkRhNPA+9//fkqlEtdeey2LFi3CMAwee+wxfvrTn9LV1VWrR9m0aRM33HADV155JRdccAF1dXUMDQ1x1113MTw8zK233nrAKRrggFNBx4Lf7+fee+/lta99LVdeeSW///3vWbZsGV/84hd5+OGHOeecc3jnO9/JkiVLSKVSPPPMM/zv//4vqVTqmFzPZz/7WX73u9/xmte8hve+9714PB6+/e1vo+s6X/7yl2vHfeITn+DHP/4xV155JR/4wAeoq6vjrrvuore3l//+7/9Glqv/z/nOd76Tr3/96/zVX/0VGzZsoLm5mR/84AcEAoFjcv2CcCoR4UYQTgNf+cpX+PnPf859993Hd77zHQzDoKOjg/e+97186lOfqtXHXHjhhfzrv/4r999/P//2b//GxMQE4XCY1atX86UvfYnrrrvuxH6QvUQiER544AEuvPBCLrvsMh555BHmzZvHU089xb/8y79w9913881vfpNEIsHSpUv50pe+dMyuZenSpTzyyCPcdNNNfOELX8BxHM455xz+67/+i3POOad2XGNjI4899hgf//jHue2226hUKqxYsYL/+Z//4eqrr64dFwgEeOihh3j/+9/PbbfdRiAQ4P/9v//HlVdeyete97pj9jkE4VQguaIiThAEQRCEU4iouREEQRAE4ZQiwo0gCIIgCKcUEW4EQRAEQTiliHAjCIIgCMIpRYQbQRAEQRBOKSLcCIIgCIJwSjnt1rlxHIfh4WHC4fA+G9IJgiAIgvDq5Lou+XyelpaW2mKXB3LahZvh4eHaHi+CIAiCIJxcBgYGaGtrO+gxp124CYfDQPXmzOz1IgiCIAjCq1sul6O9vb32e/xgTrtwMzMVFYlERLgRBEEQhJPMoZSUiIJiQRAEQRBOKSLcCIIgCIJwShHhRhAEQRCEU8ppV3MjCIIgvPrZto1pmif6MoTjTNO0l23zPhQi3AiCIAivGq7rMjo6SiaTOdGXIpwAsiwzZ84cNE17RecR4UYQBEF41ZgJNslkkkAgIBZbPY3MLLI7MjJCR0fHK/rZi3AjCIIgvCrYtl0LNolE4kRfjnACNDQ0MDw8jGVZqKp6xOcRBcWCIAjCq8JMjU0gEDjBVyKcKDPTUbZtv6LznNBw84c//IFrrrmGlpYWJEninnvuednXrF+/njVr1uD1epk3bx533nnnMb9OQRAE4fgRU1Gnr6P1sz+h4aZYLLJy5Uq+8Y1vHNLxvb29XH311Vx88cVs3LiRD37wg7zjHe/ggQceOMZXKgiCIAjCyeKE1txceeWVXHnllYd8/Le+9S3mzJnDLbfcAsDixYt59NFH+epXv8oVV1xxrC5TEARBEE5Zd955Jx/84AdPqQ61k6rm5vHHH+fSSy+d9dwVV1zB448/foKuSBAEQRBeuc985jOsWrXqRF/GKeOk6pYaHR2lsbFx1nONjY3kcjnK5TJ+v3+f1+i6jq7rta9zudyxuTjDgIkJCAbB7wdVhaOwEJEgCIIgHCun6kKJJ1W4ORJf+MIX+Od//udj/j7jDz1E33vfi0dV8agqis+Hx+dD9vtRgkE8wSAevx9PIFB9zu9HCQTwBAIooRCeUAglGASfDwKB6p+aBh5PNSjN/On3V7//ClrkBEEQhKNr3bp1rFixAp/Px3e/+100TePd7343n/nMZwDIZDJ85CMf4Ve/+hW6rnPmmWfy1a9+lZUrV3LnnXfWfk/NFNTecccdbN68mZdeeol7770XgFtvvZUPfehD3H///bzuda8DYN68eXziE5/gHe94B47j8NnPfpbvfOc7TExMsHjxYr74xS/Wju3r62POnDn85Cc/4Zvf/CZPPvkk3/rWt/b5LBMTE1x55ZW0t7fzk5/8BK/Xe6xv31F3UoWbpqYmxsbGZj03NjZGJBLZ76gNwE033cSHP/zh2te5XI729vajfm09GzawbXgYhepfTgmQACSp+pdVkkCWq9+TZSRF2f2noiB7PHg8HlRFQZ35U9PwqCqq14umadU/AwFUvx8lHMZTX4+aTKI2NKDF40jBYHXkKBCo/jnz356T6scsCIJwUrrrrrv48Ic/zJNPPsnjjz/O29/+dtauXctll13Gm9/8Zvx+P/fffz/RaJRvf/vbXHLJJWzbto23vOUtbN68md/+9rf87//+LwDRaJREIsF3v/tdbNtGURR+//vfU19fz/r163nd617H0NAQO3fuZN26dQB87Wtf45ZbbuHb3/42q1ev5vvf/z6vf/3reeGFF5g/f37tOj/xiU9wyy23sHr1anw+36ymnIGBAS677DLOPfdcvve976EoynG9h0fLSfVb77zzzuO+++6b9dzvfvc7zjvvvAO+xuv1HpfUWWhv55eJBJJto9g2muMgOw6q6yI7DhLVm+0BFNvGY9vIrosMKK6L6rqokoQCeGQZjyThURRkSap9rcgymiShyjKyoqDIMspMSFJVVJ8PbyCA1+/HGwziC4fxhkKo0ShqLIa3rg5vLIYvkUAKhXaHoD3D0En6F1kQBOFEW7FiBTfffDMA8+fP5+tf/zoPPfQQfr+fp556ivHx8drvo6985Svcc889/OIXv+Bd73oXoVAIj8dDU1NT7XwXXHAB+XyeZ599ljPOOIM//OEPfPSjH60tm7J+/XpaW1uZN29e7Zwf//jHeetb3wrAl770JR5++GFuvfXWWV3JH/zgB3njG9+4z/Vv3bqVyy67jGuvvZZbb731pG7JP6HhplAosGPHjtrXvb29bNy4kbq6Ojo6OrjpppsYGhriP//z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CnRYFl3BIHXBIB6PB8dxyGQy9A0MMFAqkWtqwl22DFpbwecDx8FXKtFWLrNCkpjr9RLy+zETCUY7OtguSfSNjFBMpaifmmJFJMLCq6/G99rXYtXVUS6VGHrqKbbffjueZ5/l3EWLuOCCC2hra0NWFEaBx4DtS5fSds01LFi2jHgggGxZpBWFgqriW7gQ78KFBGybmOtS77rM3byZeY8/jrtjBw8++CB33nkn27ZtOy4/SkEQTk2/+MUvWL58OX6/n0QiwaWXXkqxWOTtb3/7rJGRdevW8f73v58PfvCDxONxGhsbuf322ykWi9x4442Ew2HmzZvH/fffX3vNnXfeuc/Izz333HPQ6fWnn36ayy67jPr6eqLRKBdddBHPPPNM7ftdXV0AXHvttUiSVPv6M5/5DKtWraod5zgO//Iv/0JbWxter5dVq1bx29/+tvb9vr4+JEmq7WgeCARYuXIljz/+eO2YXbt2cc011xCPxwkGgyxdupT77rvvMO7u4RPh5ijSdb1WVHvMyHJ1VeO6OmhqqgaS6bVxgppG/XTQicxs52Db6LpOJpNhdHSUdDqNvtcU1D40rRpu5syphp1YrLqismWhFYvUF4vMlWVa/X5C08OG5XKZ0dFRegYHmVAUzAULYPFiSCbB40G2beK6zkLTZEldHYlEAiuZZGrePHoVhZ7BQVJDQ/h6e5kvyyy95hoiV1+N09iIaZqMbdrE1u9+l/LDD7O8uZlLLrmEuXPnoigKmVKJJ7NZNs+ZQ/Kii1i2YgX101tdTAIZyyKwYAHBefPwAWFZpsF1mf/CCyx46insHTv4n//5H374wx/S399/LH96giCcgkZGRrj++uv567/+a7Zs2cL69et54xvfeMD/obzrrruor6/nqaee4v3vfz/vec97ePOb38z555/PM888w+WXX85f/uVfUiqVjvia8vk8b3vb23j00Ud54oknmD9/PldddVVt256nn34agDvuuIORkZHa13v72te+xi233MJXvvIVnnvuOa644gpe//rXs3379lnHffKTn+QjH/kIGzduZMGCBVx//fVY03sovu9970PXdf7whz/w/PPP86UvfemYjw6JaamjxLZtjEIBQ1GQPJ7avlIvW/vySswEnUCgWvNSqUC5jKLrhBSF0PR1lQ2Dsutiejy1bRoURcHv9xMIBA6+jYHPV300NFRr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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot network predictions\n",
    "# Plot simulations\n",
    "for i in range(10):\n",
    "    plt.plot(\n",
    "        np.linspace(-2, 2, 2000),\n",
    "        np.exp(network_predictions[i][:, 0]),\n",
    "        color=\"black\",\n",
    "        label=None if i > 0 else \"network\",\n",
    "        alpha=i / 20,\n",
    "    )\n",
    "\n",
    "    plt.plot(\n",
    "        np.linspace(-2, 2, 20),\n",
    "        np.array(choice_p_vec[i, :]),\n",
    "        color=\"red\",\n",
    "        label=None if i > 0 else \"simulations\",\n",
    "        alpha=i / 20,\n",
    "    )\n",
    "\n",
    "plt.legend()\n",
    "plt.title(\"SSM likelihood\")\n",
    "plt.xlabel(\"rt\")\n",
    "plt.ylabel(\"likelihod\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/gx/s43vynx550qbypcxm83fv56dzq4hgg/T/ipykernel_25238/1241343318.py:13: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  data[\"rt\"].iloc[:1000] = np.linspace(20, 0, 1000)\n",
      "/var/folders/gx/s43vynx550qbypcxm83fv56dzq4hgg/T/ipykernel_25238/1241343318.py:13: FutureWarning: Setting an item of incompatible dtype is deprecated and will raise in a future error of pandas. Value '[20.         19.97997998 19.95995996 19.93993994 19.91991992 19.8998999\n",
      " 19.87987988 19.85985986 19.83983984 19.81981982 19.7997998  19.77977978\n",
      " 19.75975976 19.73973974 19.71971972 19.6996997  19.67967968 19.65965966\n",
      " 19.63963964 19.61961962 19.5995996  19.57957958 19.55955956 19.53953954\n",
      " 19.51951952 19.4994995  19.47947948 19.45945946 19.43943944 19.41941942\n",
      " 19.3993994  19.37937938 19.35935936 19.33933934 19.31931932 19.2992993\n",
      " 19.27927928 19.25925926 19.23923924 19.21921922 19.1991992  19.17917918\n",
      " 19.15915916 19.13913914 19.11911912 19.0990991  19.07907908 19.05905906\n",
      " 19.03903904 19.01901902 18.998999   18.97897898 18.95895896 18.93893894\n",
      " 18.91891892 18.8988989  18.87887888 18.85885886 18.83883884 18.81881882\n",
      " 18.7987988  18.77877878 18.75875876 18.73873874 18.71871872 18.6986987\n",
      " 18.67867868 18.65865866 18.63863864 18.61861862 18.5985986  18.57857858\n",
      " 18.55855856 18.53853854 18.51851852 18.4984985  18.47847848 18.45845846\n",
      " 18.43843844 18.41841842 18.3983984  18.37837838 18.35835836 18.33833834\n",
      " 18.31831832 18.2982983  18.27827828 18.25825826 18.23823824 18.21821822\n",
      " 18.1981982  18.17817818 18.15815816 18.13813814 18.11811812 18.0980981\n",
      " 18.07807808 18.05805806 18.03803804 18.01801802 17.997998   17.97797798\n",
      " 17.95795796 17.93793794 17.91791792 17.8978979  17.87787788 17.85785786\n",
      " 17.83783784 17.81781782 17.7977978  17.77777778 17.75775776 17.73773774\n",
      " 17.71771772 17.6976977  17.67767768 17.65765766 17.63763764 17.61761762\n",
      " 17.5975976  17.57757758 17.55755756 17.53753754 17.51751752 17.4974975\n",
      " 17.47747748 17.45745746 17.43743744 17.41741742 17.3973974  17.37737738\n",
      " 17.35735736 17.33733734 17.31731732 17.2972973  17.27727728 17.25725726\n",
      " 17.23723724 17.21721722 17.1971972  17.17717718 17.15715716 17.13713714\n",
      " 17.11711712 17.0970971  17.07707708 17.05705706 17.03703704 17.01701702\n",
      " 16.996997   16.97697698 16.95695696 16.93693694 16.91691692 16.8968969\n",
      " 16.87687688 16.85685686 16.83683684 16.81681682 16.7967968  16.77677678\n",
      " 16.75675676 16.73673674 16.71671672 16.6966967  16.67667668 16.65665666\n",
      " 16.63663664 16.61661662 16.5965966  16.57657658 16.55655656 16.53653654\n",
      " 16.51651652 16.4964965  16.47647648 16.45645646 16.43643644 16.41641642\n",
      " 16.3963964  16.37637638 16.35635636 16.33633634 16.31631632 16.2962963\n",
      " 16.27627628 16.25625626 16.23623624 16.21621622 16.1961962  16.17617618\n",
      " 16.15615616 16.13613614 16.11611612 16.0960961  16.07607608 16.05605606\n",
      " 16.03603604 16.01601602 15.995996   15.97597598 15.95595596 15.93593594\n",
      " 15.91591592 15.8958959  15.87587588 15.85585586 15.83583584 15.81581582\n",
      " 15.7957958  15.77577578 15.75575576 15.73573574 15.71571572 15.6956957\n",
      " 15.67567568 15.65565566 15.63563564 15.61561562 15.5955956  15.57557558\n",
      " 15.55555556 15.53553554 15.51551552 15.4954955  15.47547548 15.45545546\n",
      " 15.43543544 15.41541542 15.3953954  15.37537538 15.35535536 15.33533534\n",
      " 15.31531532 15.2952953  15.27527528 15.25525526 15.23523524 15.21521522\n",
      " 15.1951952  15.17517518 15.15515516 15.13513514 15.11511512 15.0950951\n",
      " 15.07507508 15.05505506 15.03503504 15.01501502 14.99499499 14.97497497\n",
      " 14.95495495 14.93493493 14.91491491 14.89489489 14.87487487 14.85485485\n",
      " 14.83483483 14.81481481 14.79479479 14.77477477 14.75475475 14.73473473\n",
      " 14.71471471 14.69469469 14.67467467 14.65465465 14.63463463 14.61461461\n",
      " 14.59459459 14.57457457 14.55455455 14.53453453 14.51451451 14.49449449\n",
      " 14.47447447 14.45445445 14.43443443 14.41441441 14.39439439 14.37437437\n",
      " 14.35435435 14.33433433 14.31431431 14.29429429 14.27427427 14.25425425\n",
      " 14.23423423 14.21421421 14.19419419 14.17417417 14.15415415 14.13413413\n",
      " 14.11411411 14.09409409 14.07407407 14.05405405 14.03403403 14.01401401\n",
      " 13.99399399 13.97397397 13.95395395 13.93393393 13.91391391 13.89389389\n",
      " 13.87387387 13.85385385 13.83383383 13.81381381 13.79379379 13.77377377\n",
      " 13.75375375 13.73373373 13.71371371 13.69369369 13.67367367 13.65365365\n",
      " 13.63363363 13.61361361 13.59359359 13.57357357 13.55355355 13.53353353\n",
      " 13.51351351 13.49349349 13.47347347 13.45345345 13.43343343 13.41341341\n",
      " 13.39339339 13.37337337 13.35335335 13.33333333 13.31331331 13.29329329\n",
      " 13.27327327 13.25325325 13.23323323 13.21321321 13.19319319 13.17317317\n",
      " 13.15315315 13.13313313 13.11311311 13.09309309 13.07307307 13.05305305\n",
      " 13.03303303 13.01301301 12.99299299 12.97297297 12.95295295 12.93293293\n",
      " 12.91291291 12.89289289 12.87287287 12.85285285 12.83283283 12.81281281\n",
      " 12.79279279 12.77277277 12.75275275 12.73273273 12.71271271 12.69269269\n",
      " 12.67267267 12.65265265 12.63263263 12.61261261 12.59259259 12.57257257\n",
      " 12.55255255 12.53253253 12.51251251 12.49249249 12.47247247 12.45245245\n",
      " 12.43243243 12.41241241 12.39239239 12.37237237 12.35235235 12.33233233\n",
      " 12.31231231 12.29229229 12.27227227 12.25225225 12.23223223 12.21221221\n",
      " 12.19219219 12.17217217 12.15215215 12.13213213 12.11211211 12.09209209\n",
      " 12.07207207 12.05205205 12.03203203 12.01201201 11.99199199 11.97197197\n",
      " 11.95195195 11.93193193 11.91191191 11.89189189 11.87187187 11.85185185\n",
      " 11.83183183 11.81181181 11.79179179 11.77177177 11.75175175 11.73173173\n",
      " 11.71171171 11.69169169 11.67167167 11.65165165 11.63163163 11.61161161\n",
      " 11.59159159 11.57157157 11.55155155 11.53153153 11.51151151 11.49149149\n",
      " 11.47147147 11.45145145 11.43143143 11.41141141 11.39139139 11.37137137\n",
      " 11.35135135 11.33133133 11.31131131 11.29129129 11.27127127 11.25125125\n",
      " 11.23123123 11.21121121 11.19119119 11.17117117 11.15115115 11.13113113\n",
      " 11.11111111 11.09109109 11.07107107 11.05105105 11.03103103 11.01101101\n",
      " 10.99099099 10.97097097 10.95095095 10.93093093 10.91091091 10.89089089\n",
      " 10.87087087 10.85085085 10.83083083 10.81081081 10.79079079 10.77077077\n",
      " 10.75075075 10.73073073 10.71071071 10.69069069 10.67067067 10.65065065\n",
      " 10.63063063 10.61061061 10.59059059 10.57057057 10.55055055 10.53053053\n",
      " 10.51051051 10.49049049 10.47047047 10.45045045 10.43043043 10.41041041\n",
      " 10.39039039 10.37037037 10.35035035 10.33033033 10.31031031 10.29029029\n",
      " 10.27027027 10.25025025 10.23023023 10.21021021 10.19019019 10.17017017\n",
      " 10.15015015 10.13013013 10.11011011 10.09009009 10.07007007 10.05005005\n",
      " 10.03003003 10.01001001  9.98998999  9.96996997  9.94994995  9.92992993\n",
      "  9.90990991  9.88988989  9.86986987  9.84984985  9.82982983  9.80980981\n",
      "  9.78978979  9.76976977  9.74974975  9.72972973  9.70970971  9.68968969\n",
      "  9.66966967  9.64964965  9.62962963  9.60960961  9.58958959  9.56956957\n",
      "  9.54954955  9.52952953  9.50950951  9.48948949  9.46946947  9.44944945\n",
      "  9.42942943  9.40940941  9.38938939  9.36936937  9.34934935  9.32932933\n",
      "  9.30930931  9.28928929  9.26926927  9.24924925  9.22922923  9.20920921\n",
      "  9.18918919  9.16916917  9.14914915  9.12912913  9.10910911  9.08908909\n",
      "  9.06906907  9.04904905  9.02902903  9.00900901  8.98898899  8.96896897\n",
      "  8.94894895  8.92892893  8.90890891  8.88888889  8.86886887  8.84884885\n",
      "  8.82882883  8.80880881  8.78878879  8.76876877  8.74874875  8.72872873\n",
      "  8.70870871  8.68868869  8.66866867  8.64864865  8.62862863  8.60860861\n",
      "  8.58858859  8.56856857  8.54854855  8.52852853  8.50850851  8.48848849\n",
      "  8.46846847  8.44844845  8.42842843  8.40840841  8.38838839  8.36836837\n",
      "  8.34834835  8.32832833  8.30830831  8.28828829  8.26826827  8.24824825\n",
      "  8.22822823  8.20820821  8.18818819  8.16816817  8.14814815  8.12812813\n",
      "  8.10810811  8.08808809  8.06806807  8.04804805  8.02802803  8.00800801\n",
      "  7.98798799  7.96796797  7.94794795  7.92792793  7.90790791  7.88788789\n",
      "  7.86786787  7.84784785  7.82782783  7.80780781  7.78778779  7.76776777\n",
      "  7.74774775  7.72772773  7.70770771  7.68768769  7.66766767  7.64764765\n",
      "  7.62762763  7.60760761  7.58758759  7.56756757  7.54754755  7.52752753\n",
      "  7.50750751  7.48748749  7.46746747  7.44744745  7.42742743  7.40740741\n",
      "  7.38738739  7.36736737  7.34734735  7.32732733  7.30730731  7.28728729\n",
      "  7.26726727  7.24724725  7.22722723  7.20720721  7.18718719  7.16716717\n",
      "  7.14714715  7.12712713  7.10710711  7.08708709  7.06706707  7.04704705\n",
      "  7.02702703  7.00700701  6.98698699  6.96696697  6.94694695  6.92692693\n",
      "  6.90690691  6.88688689  6.86686687  6.84684685  6.82682683  6.80680681\n",
      "  6.78678679  6.76676677  6.74674675  6.72672673  6.70670671  6.68668669\n",
      "  6.66666667  6.64664665  6.62662663  6.60660661  6.58658659  6.56656657\n",
      "  6.54654655  6.52652653  6.50650651  6.48648649  6.46646647  6.44644645\n",
      "  6.42642643  6.40640641  6.38638639  6.36636637  6.34634635  6.32632633\n",
      "  6.30630631  6.28628629  6.26626627  6.24624625  6.22622623  6.20620621\n",
      "  6.18618619  6.16616617  6.14614615  6.12612613  6.10610611  6.08608609\n",
      "  6.06606607  6.04604605  6.02602603  6.00600601  5.98598599  5.96596597\n",
      "  5.94594595  5.92592593  5.90590591  5.88588589  5.86586587  5.84584585\n",
      "  5.82582583  5.80580581  5.78578579  5.76576577  5.74574575  5.72572573\n",
      "  5.70570571  5.68568569  5.66566567  5.64564565  5.62562563  5.60560561\n",
      "  5.58558559  5.56556557  5.54554555  5.52552553  5.50550551  5.48548549\n",
      "  5.46546547  5.44544545  5.42542543  5.40540541  5.38538539  5.36536537\n",
      "  5.34534535  5.32532533  5.30530531  5.28528529  5.26526527  5.24524525\n",
      "  5.22522523  5.20520521  5.18518519  5.16516517  5.14514515  5.12512513\n",
      "  5.10510511  5.08508509  5.06506507  5.04504505  5.02502503  5.00500501\n",
      "  4.98498498  4.96496496  4.94494494  4.92492492  4.9049049   4.88488488\n",
      "  4.86486486  4.84484484  4.82482482  4.8048048   4.78478478  4.76476476\n",
      "  4.74474474  4.72472472  4.7047047   4.68468468  4.66466466  4.64464464\n",
      "  4.62462462  4.6046046   4.58458458  4.56456456  4.54454454  4.52452452\n",
      "  4.5045045   4.48448448  4.46446446  4.44444444  4.42442442  4.4044044\n",
      "  4.38438438  4.36436436  4.34434434  4.32432432  4.3043043   4.28428428\n",
      "  4.26426426  4.24424424  4.22422422  4.2042042   4.18418418  4.16416416\n",
      "  4.14414414  4.12412412  4.1041041   4.08408408  4.06406406  4.04404404\n",
      "  4.02402402  4.004004    3.98398398  3.96396396  3.94394394  3.92392392\n",
      "  3.9039039   3.88388388  3.86386386  3.84384384  3.82382382  3.8038038\n",
      "  3.78378378  3.76376376  3.74374374  3.72372372  3.7037037   3.68368368\n",
      "  3.66366366  3.64364364  3.62362362  3.6036036   3.58358358  3.56356356\n",
      "  3.54354354  3.52352352  3.5035035   3.48348348  3.46346346  3.44344344\n",
      "  3.42342342  3.4034034   3.38338338  3.36336336  3.34334334  3.32332332\n",
      "  3.3033033   3.28328328  3.26326326  3.24324324  3.22322322  3.2032032\n",
      "  3.18318318  3.16316316  3.14314314  3.12312312  3.1031031   3.08308308\n",
      "  3.06306306  3.04304304  3.02302302  3.003003    2.98298298  2.96296296\n",
      "  2.94294294  2.92292292  2.9029029   2.88288288  2.86286286  2.84284284\n",
      "  2.82282282  2.8028028   2.78278278  2.76276276  2.74274274  2.72272272\n",
      "  2.7027027   2.68268268  2.66266266  2.64264264  2.62262262  2.6026026\n",
      "  2.58258258  2.56256256  2.54254254  2.52252252  2.5025025   2.48248248\n",
      "  2.46246246  2.44244244  2.42242242  2.4024024   2.38238238  2.36236236\n",
      "  2.34234234  2.32232232  2.3023023   2.28228228  2.26226226  2.24224224\n",
      "  2.22222222  2.2022022   2.18218218  2.16216216  2.14214214  2.12212212\n",
      "  2.1021021   2.08208208  2.06206206  2.04204204  2.02202202  2.002002\n",
      "  1.98198198  1.96196196  1.94194194  1.92192192  1.9019019   1.88188188\n",
      "  1.86186186  1.84184184  1.82182182  1.8018018   1.78178178  1.76176176\n",
      "  1.74174174  1.72172172  1.7017017   1.68168168  1.66166166  1.64164164\n",
      "  1.62162162  1.6016016   1.58158158  1.56156156  1.54154154  1.52152152\n",
      "  1.5015015   1.48148148  1.46146146  1.44144144  1.42142142  1.4014014\n",
      "  1.38138138  1.36136136  1.34134134  1.32132132  1.3013013   1.28128128\n",
      "  1.26126126  1.24124124  1.22122122  1.2012012   1.18118118  1.16116116\n",
      "  1.14114114  1.12112112  1.1011011   1.08108108  1.06106106  1.04104104\n",
      "  1.02102102  1.001001    0.98098098  0.96096096  0.94094094  0.92092092\n",
      "  0.9009009   0.88088088  0.86086086  0.84084084  0.82082082  0.8008008\n",
      "  0.78078078  0.76076076  0.74074074  0.72072072  0.7007007   0.68068068\n",
      "  0.66066066  0.64064064  0.62062062  0.6006006   0.58058058  0.56056056\n",
      "  0.54054054  0.52052052  0.5005005   0.48048048  0.46046046  0.44044044\n",
      "  0.42042042  0.4004004   0.38038038  0.36036036  0.34034034  0.32032032\n",
      "  0.3003003   0.28028028  0.26026026  0.24024024  0.22022022  0.2002002\n",
      "  0.18018018  0.16016016  0.14014014  0.12012012  0.1001001   0.08008008\n",
      "  0.06006006  0.04004004  0.02002002  0.        ]' has dtype incompatible with float32, please explicitly cast to a compatible dtype first.\n",
      "  data[\"rt\"].iloc[:1000] = np.linspace(20, 0, 1000)\n",
      "/var/folders/gx/s43vynx550qbypcxm83fv56dzq4hgg/T/ipykernel_25238/1241343318.py:15: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  data[\"choice\"].iloc[:1000] = -1\n",
      "/var/folders/gx/s43vynx550qbypcxm83fv56dzq4hgg/T/ipykernel_25238/1241343318.py:16: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  data[\"choice\"].iloc[1000:] = 1\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "data = pd.DataFrame(\n",
    "    np.zeros((2000, 7), dtype=np.float32),\n",
    "    columns=[\"v\", \"a\", \"z\", \"t\", \"theta\", \"rt\", \"choice\"],\n",
    ")\n",
    "data[\"v\"] = 0.5\n",
    "data[\"a\"] = 0.75\n",
    "data[\"z\"] = 0.5\n",
    "data[\"t\"] = 0.2\n",
    "data[\"theta\"] = 0.1\n",
    "data[\"rt\"].iloc[:1000] = np.linspace(20, 0, 1000)\n",
    "data[\"rt\"].iloc[1000:] = np.linspace(0, 20, 1000)\n",
    "data[\"choice\"].iloc[:1000] = -1\n",
    "data[\"choice\"].iloc[1000:] = 1\n",
    "\n",
    "# Network predictions\n",
    "predict_on_batch_out = network.predict_on_batch(data.values.astype(np.float32))\n",
    "\n",
    "# Simulations\n",
    "from ssms.basic_simulators.simulator import simulator\n",
    "\n",
    "sim_out = simulator(model=\"angle\", theta=data.values[0, :-2], n_samples=2000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'likelihod')"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot network predictions\n",
    "plt.plot(\n",
    "    data[\"rt\"] * data[\"choice\"],\n",
    "    predict_on_batch_out,\n",
    "    color=\"black\",\n",
    "    label=\"network\",\n",
    ")\n",
    "\n",
    "# Plot simulations\n",
    "# plt.hist(\n",
    "#     sim_out[\"rts\"] * sim_out[\"choices\"],\n",
    "#     bins=100,\n",
    "#     histtype=\"step\",\n",
    "#     label=\"simulations\",\n",
    "#     color=\"blue\",\n",
    "#     density=True,\n",
    "# )\n",
    "plt.legend()\n",
    "plt.title(\"SSM likelihood\")\n",
    "plt.xlabel(\"rt\")\n",
    "plt.ylabel(\"likelihod\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We hope this package may be helpful in case you attempt to train [LANs](https://elifesciences.org/articles/65074) for your own research."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### END"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3.8.10 ('cssm')",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.12"
  },
  "orig_nbformat": 4,
  "vscode": {
   "interpreter": {
    "hash": "c2404e761a8d4e2a34f63613cf4c9a9997cd3109cabb959a7904b2035989131a"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
